package cn.iocoder.yudao.module.system.service.suggestion;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.suggestion.vo.SuggestionPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.suggestion.vo.SuggestionSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.suggestion.SuggestionDO;

import javax.validation.Valid;

/**
 * 意见建议 Service 接口
 *
 * @author 万民匠心
 */
public interface SuggestionService {

    /**
     * 创建意见建议
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createSuggestion(@Valid SuggestionSaveReqVO createReqVO);

    /**
     * 创建意见建议
     *
     * @param userId 用户编号
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createSuggestion(Long userId, @Valid SuggestionSaveReqVO createReqVO);

    /**
     * 更新意见建议
     *
     * @param updateReqVO 更新信息
     */
    void updateSuggestion(@Valid SuggestionSaveReqVO updateReqVO);

    /**
     * 修改状态
     *
     * @param id     合伙人编号
     * @param status 状态
     */
    void updateStatus(Long id, Integer status);

    /**
     * 删除意见建议
     *
     * @param id 编号
     */
    void deleteSuggestion(Long id);

    /**
     * 获得意见建议
     *
     * @param id 编号
     * @return 意见建议
     */
    SuggestionDO getSuggestion(Long id);

    /**
     * 获得意见建议分页
     *
     * @param pageReqVO 分页查询
     * @return 意见建议分页
     */
    PageResult<SuggestionDO> getSuggestionPage(SuggestionPageReqVO pageReqVO);

}